module.exports = {
  // webpack配置
  configureWebpack: {
    // 关闭 webpack 的性能提示
    performance: {
      hints: false
    }
    // 或者
    // 警告 webpack 的性能提示
    // performance: {
    //   hints: "warning",
    //   // 入口起点的最大体积
    //   maxEntrypointSize: 50000000,
    //   // 生成文件的最大体积
    //   maxAssetSize: 30000000,
    //   // 只给出 js 文件的性能提示
    //   assetFilter: function (assetFilename) {
    //     return assetFilename.endsWith(".js");
    //   }
    // }
  },
  chainWebpack: (config) => {
    config.when(process.env.NODE_ENV === "production", (config) => {
      config.entry("app").clear().add("./src/main-prod.js"); // 重新设置入口文件
      config.set("externals", {
        // 键是包名，值是引入时声明的对象名。打包时不会打包其中的包，而是直接调用引用的对象
        vue: "Vue",
        "vue-router": "VueRouter",
        axios: "axios",
        lodash: "_",
        echarts: "echarts",
        nprogress: "NProgress",
        "vue-quill-editor": "VueQuillEditor"
      });
      config.plugin("html").tap((args) => {
        // args === htmlWebpackPlugin.options
        args[0].isProd = true; // 在args身上本身是没有isProd的
        return args;
      });
    });
    config.when(process.env.NODE_ENV === "development", (config) => {
      config.entry("app").clear().add("./src/main-dev.js");
      config.plugin("html").tap((args) => {
        args[0].isProd = false;
        return args;
      });
    });
  }
};
